package com.wicket.okrbff.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.TagService;
import com.wicket.okrbff.common.ro.OkrResult;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags;
import org.apache.skywalking.apm.toolkit.trace.Trace;
import com.wicket.okrbff.common.ro.OkrResult;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrbff.common.util.RedisUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.wicket.okrframework.integration.FwBaseTagClient;
import com.wicket.okrframework.integration.dto.QueryTagListRespDto;
import com.wicket.okrframework.integration.dto.QueryTagListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffTagDto;
import java.util.stream.Collectors;
import com.wicket.okrbff.common.exception.Assert;
import java.util.ArrayList;
import java.util.List;
import com.wicket.okrapp.integration.FwAppContTagRcordClient;
import com.wicket.okrapp.integration.dto.QueryContTagRcordListRespDto;
import com.wicket.okrapp.integration.dto.QueryContTagRcordListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffContTagRcordDto;
 
/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Service
public class TagServiceImpl implements TagService {

    @Resource
    private RedisUtil redisUtil;
@Resource
  FwBaseTagClient fwBaseTagClient;
@Resource
  FwAppContTagRcordClient fwAppContTagRcordClient;
/**
   * B1-1查指标模板推荐标签列表(边界)[2833]
   * gen by moon at 10/24/2022, 9:55:21 PM
   */
    @Trace(operationName = "B1-1查指标模板推荐标签列表(边界)")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryTargetTempRecommendTagListBorderRespDto queryTargetTempRecommendTagListBorder(BffQueryTargetTempRecommendTagListBorderReqDto reqDto){
      
       
       QueryTagListRespDto queryTagListRespDto_1 =null;
//步骤0: D1-1查标签列表 - queryTagList
     QueryTagListRespDto queryTagListRespDto = null;
    QueryTagListReqDto queryTagListReqDto=new QueryTagListReqDto();
  queryTagListReqDto.setIsRecommend("TRUE");//sourceId:89703_1
queryTagListReqDto.setBusinessSceneCode("OBJECTIVE_TEMP_MGT");//CUSTOM_CONVENTION//sourceId:89704_1
queryTagListReqDto.setSubjectLifeCycle("CURRENTLY_VALID");//sourceId:89694_1
  
    /*D1-1查标签列表[616]   */
    Assert.isNull(queryTagListReqDto.getIsRecommend(),"B1-1查指标模板推荐标签列表(边界)-D1-1查标签列表-是否推荐不能为空",false);
Assert.isNull(queryTagListReqDto.getBusinessSceneCode(),"B1-1查指标模板推荐标签列表(边界)-D1-1查标签列表-归属业务场景标识不能为空",false);
Assert.isNull(queryTagListReqDto.getSubjectLifeCycle(),"B1-1查指标模板推荐标签列表(边界)-D1-1查标签列表-主体生命周期不能为空",false);
      queryTagListRespDto = fwBaseTagClient.queryTagList(queryTagListReqDto).getData();
      
      
      queryTagListRespDto_1 = queryTagListRespDto;
    
BffQueryTargetTempRecommendTagListBorderRespDto retData = new BffQueryTargetTempRecommendTagListBorderRespDto();
  if(queryTagListRespDto_1!=null){
      retData.setTagList(queryTagListRespDto_1.getTagList().stream().map(item -> BeanUtil.toBean(item, BffTagDto.class)).collect(Collectors.toList()));//objList-to-objLists//sourceId:89705_1
    }
  

  
  
return retData;
  }
/**
   * B3-13查询指标模板标签记录列表(边界)[2245]
   * gen by moon at 10/8/2022, 3:08:33 AM
   */
    @Trace(operationName = "B3-13查询指标模板标签记录列表(边界)")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryTargetTempTagRcordListBorderRespDto queryTargetTempTagRcordListBorder(BffQueryTargetTempTagRcordListBorderReqDto reqDto){
      
       
       QueryContTagRcordListRespDto queryContTagRcordListRespDto_1 =null;
//步骤0: D3-13查业务应用内容标签记录列表 - queryContTagRcordList
     QueryContTagRcordListRespDto queryContTagRcordListRespDto = null;
    QueryContTagRcordListReqDto queryContTagRcordListReqDto=new QueryContTagRcordListReqDto();
  queryContTagRcordListReqDto.setBizAppContentCode("OBJECTIVE_TEMPLATE");//sourceId:65560_1
queryContTagRcordListReqDto.setSubjectLifeCycle("CURRENTLY_VALID");//sourceId:65562_1
if(reqDto!=null){
      queryContTagRcordListReqDto.setObjectContentId(reqDto.getObjectContentId());//SimpleFieldAssign//sourceId:65561_1
queryContTagRcordListReqDto.setTagName(reqDto.getTagName());//SimpleFieldAssign//sourceId:65559_1
    }
  
    /*D3-13查业务应用内容标签记录列表[2244]   */
    Assert.isNull(queryContTagRcordListReqDto.getObjectContentId(),"B3-13查询指标模板标签记录列表(边界)-D3-13查业务应用内容标签记录列表-标签内容ID不能为空",false);
Assert.isNull(queryContTagRcordListReqDto.getBizAppContentCode(),"B3-13查询指标模板标签记录列表(边界)-D3-13查业务应用内容标签记录列表-业务应用内容类型编码不能为空",false);
Assert.isNull(queryContTagRcordListReqDto.getSubjectLifeCycle(),"B3-13查询指标模板标签记录列表(边界)-D3-13查业务应用内容标签记录列表-主体生命周期不能为空",false);
      queryContTagRcordListRespDto = fwAppContTagRcordClient.queryContTagRcordList(queryContTagRcordListReqDto).getData();
      
      
      queryContTagRcordListRespDto_1 = queryContTagRcordListRespDto;
    
BffQueryTargetTempTagRcordListBorderRespDto retData = new BffQueryTargetTempTagRcordListBorderRespDto();
  if(queryContTagRcordListRespDto_1!=null){
      retData.setContTagRcordList(queryContTagRcordListRespDto_1.getContTagRcordList().stream().map(item -> BeanUtil.toBean(item, BffContTagRcordDto.class)).collect(Collectors.toList()));//objList-to-objLists//sourceId:65567_1
    }
  

  
  
return retData;
  }
 //
}
